﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Onshi.POS.Modelo.Entidades;
using Onshi.POS.Repositorios;
using Onshi.POS.Articulos.Vistas;
using Onshi.POS.Modelo.Enumeradores;

namespace Onshi.POS.Articulos
{
    public class ArticulosServicioDetallePresentador
    {
        #region Constructores

        public ArticulosServicioDetallePresentador(IArticulosServicioDetalle vista)
        {
            this.vista = vista;
        }

        #endregion

        #region Atributos

        private IArticulosServicioDetalle vista;

        #endregion

        #region Propiedades

        private RepositorioArticulos RepositorioArticulos
        {
            get { return new RepositorioArticulos(); }
        }

        #endregion

        #region Metodos

        public void Inicializar()
        {
            var articulo = RepositorioArticulos.DevolverPorId(vista.IdArticulo, true);
            if (articulo == null)
                throw new Exception("El artículo no existe");
            vista.IdRubroArticulo = articulo.SubRubro.Rubro.Id;
            vista.IdSubRubroArticulo = articulo.SubRubro.Id;
            vista.SubRubroArticuloNombre = articulo.SubRubroNombre;
            vista.RubroArticuloNombre = articulo.RubroNombre;
            vista.IdMarca = articulo.Marca.Id;
            vista.MarcaNombre = articulo.MarcaNombre;
            vista.IdDescuentoRecargoCantidad = articulo.DescuentoRecargoCantidad.Id;
            vista.DescuentoRecargoCantidadNombre = articulo.DescuentoRecargoCantidadNombre;
            vista.TipoComisionArticuloNombre = articulo.TipoComisionNombre;
            vista.TipoImpuestoArticuloNombre = articulo.TipoImpuestoNombre;
            vista.Codigo = articulo.Codigo;
            vista.Nombre = articulo.Nombre;
            vista.Costo = articulo.CostoFormato;
            vista.Comision = articulo.ComisionFormato;
            vista.ComisionMaxima = articulo.ComisionMaximaFormato;
            vista.Iva = articulo.IvaFormato;
            vista.Impuesto = articulo.ImpuestoFormato;
            vista.Estado = articulo.Estado;
            vista.Imagen = articulo.Imagen;
            vista.Observaciones = articulo.Observaciones;
            vista.ListadoCamposPersonalizados = articulo.CamposPersonalizados;
            vista.ListadoListasPreciosVentas = articulo.ListasPreciosVentas;
            vista.TipoArticuloNombre = articulo.TipoNombre;
            vista.DescuentoRecargoFechaHoraNombre = articulo.DescuentoRecargoFechaHoraNombre;
            vista.IdDescuentoRecargoFechaHora = articulo.DescuentoRecargoFechaHora.Id;
        }

        #endregion
    }
}
